var __extends = (this && this.__extends) || (function () {
    var extendStatics = function (d, b) {
        extendStatics = Object.setPrototypeOf ||
            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
        return extendStatics(d, b);
    };
    return function (d, b) {
        if (typeof b !== "function" && b !== null)
            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
        extendStatics(d, b);
        function __() { this.constructor = d; }
        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
    };
})();
// •	定义一个数值和字符串的联合类型（10分）
var numstr = [1, 2, '1', '2'];
console.log(numstr);
// •	定义一个类型断言（10分）
var dyaa = [1, 2, 3];
var dybb = dyaa.length;
console.log(dybb);
// •	定义一个 void 实现函数的无返回值（10分）
function fnc() {
    console.log('赵宇浩');
}
fnc();
// •	定义一个 never 的函数（10分）
function infiniteLoop() {
    while (true) {
    }
}
// •	分别定义 es5 和 ts 的函数定义（10分）
function fx(a, b) {
    if (b) {
        return console.log((a + b));
    }
    else {
        return console.log(a);
    }
}
fx(1);
// •	定义函数时， 分别实现参数类型、剩余参数、默认参数（10分）
function fn(a, b) {
    return console.log(a + b);
}
fn(1, 2);
function fnn(a1, b1) {
    if (b1 === void 0) { b1 = 'b1'; }
    return console.log(a1 + '' + b1);
}
fnn('a1');
// •	实现一个函数重载（10分）
// •	使用 es5 的方式定义一个类和es6中定义类（10分）
// •	在 ts 中定义一个类并实现继承（10分）
var aa = /** @class */ (function () {
    function aa() {
    }
    aa.prototype.move = function (distanceInMeters) {
        if (distanceInMeters === void 0) { distanceInMeters = 0; }
        console.log("aa moved ".concat(distanceInMeters, "m."));
    };
    return aa;
}());
var bb = /** @class */ (function (_super) {
    __extends(bb, _super);
    function bb() {
        return _super !== null && _super.apply(this, arguments) || this;
    }
    bb.prototype.bark = function () {
        console.log('好好好');
    };
    return bb;
}(aa));
var cc = new bb();
cc.bark();
cc.move(10);
cc.bark();
